/**
 * describe:
 *
 * @author chaP
 * @date 2019/01/17
 */
package CodingTest.AC20190117;

/**
 * 给定一个字符串，验证它是否是回文串，只考虑字母和数字字符，可以忽略字母的大小写。

 说明：本题中，我们将空字符串定义为有效的回文串。

 示例 1:

 输入: "A man, a plan, a canal: Panama"
 输出: true
 示例 2:

 输入: "race a car"
 输出: false

 解题思路：先将字符串格式化，去除大写，空格等一些符号，再两端开始比较
 */
public class isPalindrome {
    public boolean isPalindrome(String s){
        int len = s.length();
        if(len == 0)
            return true;
        int low = 0;
       String str = s.toLowerCase();
       StringBuffer str1 = new StringBuffer();
       for(int i = 0;i<len;i++){
           if((str.charAt(i) <= 'z' && str.charAt(i) >= 'a') || (str.charAt(i) <= '9' && str.charAt(i) >= '1')){
               str1.append(str.charAt(i));
           }
       }
       str = str1.toString();
       if(str.length() == 1)
           return true;
        int high = str.length()-1;
       while(low <= high){
           if(str.charAt(low) == str.charAt(high)){
               low ++;
               high --;
           }else{
               return false;
           }
       }
       return true;

    }
    public static void main(String[] args){
        String s = "0P";
        isPalindrome ip = new isPalindrome();
        boolean result = ip.isPalindrome(s);
        System.out.print(result);
    }
}
